var path = require('path')
const htmlWebpackPlugin = require('html-webpack-plugin');
const {CleanWebpackPlugin} = require('clean-webpack-plugin') //删除旧版本的插件
const webpack = require('webpack')



module.exports = {
    mode:'production',
    entry:{
        app: path.join(__dirname, './src/main.js'),
        vendors: ['jquery']     //要抽离的第三方包的名称
    } ,
    output: {
        path: path.join(__dirname, './dist'),
        filename: 'js/bundle.js'
    },
    plugins: [
        new htmlWebpackPlugin({
            // 创建一个在内存中生成 HTML 页面的插件

            // 指定 模板页面，将来会根据指定的页面路径，去生成内存中的页面
            template: path.join(__dirname, './src/index.html'),
            // 指定生成的页面的名称
            filename: 'index.html'
        }),
        new CleanWebpackPlugin(),
        new webpack.optimize.RuntimeChunkPlugin({
            name:'vendors', //指定入口
            filename:'vendors.js'   //第三方包的存储文件名
        }),
        
       
    ],
    module: {// 所有第三方模块的配置规则
        rules: [// 第三方配置规则
            { test: /\.(js|jsx)$/i, use: 'babel-loader', exclude: /node_modules/ },//exclude 排除项
            { test: /\.css$/, use: ['style-loader', 'css-loader'] },// 打包处理css,从右往左调用,modules 启用了模块化,后边可改变cssobj 的内容
            {test: /\.json$/,use: 'json-loader', exclude: /node_modules/},
            {
                test: /\.scss$/, use: ['style-loader', {
                    loader: 'css-loader',
                    options: {
                        modules: {
                            localIdentName: '[path][name]__[local]--[hash:base64:5]',
                        }
                    }
                }, 'sass-loader']
            },  //css模块化
            // { test: /\.scss$/, use: ['style-loader', 'css-loader','sass-loader'] },
            { test: /\.(ttf|woff|woff2|eot|svg)$/i, use:'url-loader'}, //打包处理字体文件// 大于byte会被转码

            { test: /\.(png|gif|bmp|jpg)$/, use:'url-loader?limit=30000' },
        ]
    },
    resolve: {
        extensions: ['.js', '.jsx', '.json'] ,//表示这几个后缀名可以不写
        alias:{                               //配置根目录
            '@':path.join (__dirname,'./src')
        }
    }
}



